﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Cinch;
using System.ComponentModel;
using System.ComponentModel.Composition;

namespace Anata.Client
{
    /// <summary>
    /// Represents a single Image ViewModel
    /// </summary>
    public class CabangLayananThumbnailViewModel : ViewModelBase
    {
        #region Data

        //private ViewMode currentViewMode = ViewMode.AddMode;

        #region Data.Primitives
        private Int32 idCabang;
        private String namaCabang;
        private Int32 idLayanan;
        private String namaLayanan;
        private Int32 harga;
        #endregion

        //private IEnumerable<DataWrapperBase> cachedListOfDataWrappers;

        #region Data.Rules
        #endregion

        #region Data.VMs
        #endregion

        #region Data.Services
        #endregion

        #endregion

        #region Constructor
        public CabangLayananThumbnailViewModel()
        {
            #region Constructor.SetupServices
            #endregion

            #region Constructor.SetupCommands
            #endregion

            #region Constructor.SetupDataWrappers
            #endregion

            //fetch list of all DataWrappers, so they can be used again later without the
            //need for reflection
            //cachedListOfDataWrappers =
            //    DataWrapperHelper.GetWrapperProperties<CabangLayananThumbnailViewModel>(this);

            #region Constructor.SetupValidationRules
            #endregion

            #region Constructor.SetupCollections
            #endregion
        }
        #endregion

        #region Static
        #endregion

        #region Public Properties

        #region Public.Commands
        #endregion

        #region Public.ViewMode
        #endregion

        #region Public.Data
        /// <summary>
        /// </summary>
        static PropertyChangedEventArgs idCabangChangeArgs =
            ObservableHelper.CreateArgs<CabangLayananThumbnailViewModel>(x => x.IdCabang);
        public Int32 IdCabang
        {
            get { return idCabang; }
            set
            {
                idCabang = value;
                NotifyPropertyChanged(idCabangChangeArgs);
            }
        }
        /// <summary>
        /// </summary>
        static PropertyChangedEventArgs namaCabangChangeArgs =
            ObservableHelper.CreateArgs<CabangLayananThumbnailViewModel>(x => x.NamaCabang);
        public String NamaCabang
        {
            get { return namaCabang; }
            set
            {
                namaCabang = value;
                NotifyPropertyChanged(namaCabangChangeArgs);
            }
        }
        /// <summary>
        /// </summary>
        static PropertyChangedEventArgs idLayananChangeArgs =
            ObservableHelper.CreateArgs<CabangLayananThumbnailViewModel>(x => x.IdLayanan);
        public Int32 IdLayanan
        {
            get { return idLayanan; }
            set
            {
                idLayanan = value;
                NotifyPropertyChanged(idLayananChangeArgs);
            }
        }
        /// <summary>
        /// </summary>
        static PropertyChangedEventArgs namaLayananChangeArgs =
            ObservableHelper.CreateArgs<CabangLayananThumbnailViewModel>(x => x.NamaLayanan);
        public String NamaLayanan
        {
            get { return namaLayanan; }
            set
            {
                namaLayanan = value;
                NotifyPropertyChanged(namaLayananChangeArgs);
            }
        }
        /// <summary>
        /// </summary>
        static PropertyChangedEventArgs hargaChangeArgs =
            ObservableHelper.CreateArgs<CabangLayananThumbnailViewModel>(x => x.Harga);
        public Int32 Harga
        {
            get { return harga; }
            set
            {
                harga = value;
                NotifyPropertyChanged(hargaChangeArgs);
            }
        }
        #endregion

        #region Public.Cached Collection
        #endregion

        #region Public.DataVM
        #endregion

        #region Public.SummaryData
        #endregion

        #endregion

        #region Command Handlers
        #endregion

        #region Change Callbacks
        #endregion

        #region Private Methods
        #endregion

        #region Overrides
        public override string ToString()
        {
            return String.Format("CabangLayananThumbnailViewModel {0}", this.namaLayanan);
        }
        #endregion

        #region EditableValidatingViewModelBase overrides
        #endregion
    }
}
